課程資訊
課程名稱
資料結構與演算法實務
Practical Data Structures and Algorithms 
開課學期
103-2 
授課對象
生物資源暨農學院  生物產業機電工程學研究所  
授課教師
陳倩瑜 
課號
BME5010 
課程識別碼
631 U1260 
班次
 
學分
全/半年
半年 
必/選修
選修 
上課時間
星期二5(12:20~13:10)星期五5,6(12:20~14:10) 
上課地點
知武會議室知武會議室 
備註
總人數上限:30人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1032BME5010_PDSA 
課程簡介影片
 
核心能力關聯
本課程尚未建立核心能力關連
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

此一課程在於介紹多種常用之資料結構與相關演算法,增進修課學生的程式設計能力,以期未來能在不同領域實際應用。

每週課程計畫進度:

Chapter 1: Fundamentals introduces a scientific and engineering basis for comparing algorithms and making predictions. It also includes our programming model.
Chapter 2: Sorting considers several classic sorting algorithms, including insertion sort, mergesort, and quicksort. It also includes a binary heap implementation of a priority queue.
Chapter 3: Searching describes several classic symbol table implementations, including binary search trees, red-black trees, and hash tables.
Chapter 4: Graphs surveys the most important graph processing problems, including depth-first search, breadth-first search, minimum spanning trees, and shortest paths.
Chapter 5: Strings investigates specialized algorithms for string processing, including radix sorting, substring search, tries, regular expressions, and data compression.
Chapter 6: Context highlights connections to systems programming, scientific computing, commercial applications, operations research, and intractability.
 

課程目標
本課程將搭配程式編輯,介紹多種可使用的資料結構,引領學生了解現有演算法,解決實際問題。 
課程要求
修過至少一種基本程式設計課程(any language is fine, ext. C, C++, Java, Perl, ...) 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
Algorithms
By: Robert Sedgewick; Kevin Wayne
Publisher: Addison-Wesley Professional
Pub. Date: March 09, 2011
Print ISBN-10: 0-321-57351-X
Print ISBN-13: 978-0-321-57351-3
Web ISBN-10: 0-13-276257-9
Web ISBN-13: 978-0-13-276257-1
Pages in Print Edition: 976

作者網頁:
http://algs4.cs.princeton.edu
http://introcs.cs.princeton.edu 
參考書目
1. Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data
Structures, Sorting, Searching, and Graph Algorithms (3rd Edition) (Pts. 1-5)

2. Sanjoy Dasgupta, Christos H. Papadimitriou, and Umesh Vazirani, Algorithms,
McGraw-Hill, 2006. (http://www.cs.berkeley.edu/~vazirani/algorithms.html) 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
期末考 
25% 
 
2. 
期中考 
25% 
 
3. 
程式作業 
50% 
每週一次 
 
課程進度
週次
日期
單元主題
第1週
02/24,02/27  Introduction<br>
Connectivity problem<br>02/27 放假 
第2週
03/03,03/06  Connectivity problem<br>Analysis of Algorithms 
第3週
03/10,03/13  Analysis of Algorithms 
第4週
03/17,03/20  Stacks and Queues<br>Iterator (Java) 
第5週
03/24,03/27  Elementary Sorts<br>Mergesort<br>Comparator (Java) 
第6週
03/31,04/03  Quick sort<br>Selection sort<br>04/03 放假 
第7週
04/07,04/10  Quick selection<br>Duplicate keys 
第8週
04/14,04/17  Priority queue<br>Binary heap<br>Heap sort 
第9週
04/21,04/24  04/24 Midterm 
第10週
04/28,05/01  Symbol Tables<br>Binary Search Trees  
第11週
05/05,05/08  Red-black trees<br>Kd-trees 
第12週
05/12,05/15  Hashs 
第13週
05/19,05/22  Undirected Graphs 
第14週
05/26,05/29  Directed Graphs 
第15週
06/02,06/05  Minimum Spanning Trees 
第16週
06/09,06/12  Shortest Paths 
第17週
06/16,06/19  String Sorting (6/19 端午節補假) 
第18週
06/23,06/26  06/23 無課<br>06/26 Final